<?php

namespace app\common\controller;

trait Send
{
    // 定义所有接口成功返回值
    public static $okCode = 0;
    protected static $errorCode = [
        0 => 'success',
        100 => '缺少必要的参数',
        101 => '小程序登录失败',
        102 => '参数错误',
        103 => 'Token令牌缓存出错，服务器内部错误',
        104 => 'Token令牌无效',
        105 => '数据解密错误',
        106 => '绑定手机号码失败',
        107 => '该用户暂未授权',
        108 => '您的账号已被管理员冻结',
        109 => '该功能需要付费才能解锁',
        110 => '用户不存在',
        111 => '已经点赞或者收藏过',
        112 => '点赞或者收藏失败',
        113 => '关注用户失败',
        114 => '您已经签到',
        115 => '签到失败',
        116 => '加积分失败，超出每天限额',
        117 => '发帖失败',
        118 => '帖子不存在',
        119 => '只能删除自己发表的帖子',
        120 => '只能删除自己的评论或者回复',
        121 => '统一下单接口错误',
        122 => '班级不存在',
        123 => '支付金额错误',
        124 => '积分可抵扣金额错误',
        125 => '优惠券不存在或已过期',
        126 => '购买金额非法',
        127 => '已经购买过的班级不能重复购买',
        128 => '上传文件出错',
        129 => '暂无数据',
        130 => '上传文件错误',
        131 => '文件超过大小限制',
        132 => '文件格式错误',
        133 => '最多只能上传10个文件',
        134 => '只能上传9张图片',
        135 => '只能上传1个视频',
        136 => '非法操作',
        137 => '暂无数据',
        138 => '刷新Token令牌无效',
        139 => '操作过于频繁，请半小时后再来~',
        140 => '邮件发送出错',
        141 => '用户已注册',
        142 => '暂无此分享码',
        // 后台
        600 => 'Rbac权限错误',
        601 => '没有访问权限',
        602 => '操作失败',
        603 => '新增订单错误',
        604 => '登录账号有误',
        605 => '登录账号已被绑定'
    ];
    protected static $defaultMsg = 'unknown error';

    public static function sendResult($code = 0, $data = [], $msg = '')
    {
        if (empty($msg)) {
            $msg = isset(self::$errorCode[$code]) ? self::$errorCode[$code] : self::$defaultMsg;
        }
        $result = [
            'code' => $code,
            'msg' => $msg,
            'data' => $data,
        ];
        return $result;
    }

    public static function exitJson($return)
    {
        exit(json_encode($return, JSON_UNESCAPED_UNICODE));
    }
}
